package fr.generali.accueilclient.gwt.client.dispatch;

import net.customware.gwt.dispatch.shared.Action;
import net.customware.gwt.dispatch.shared.Result;

public interface ActionCache {
	
	/**
	 * Clear the cache
	 */
	void clear();

	/**
	 * Clear the cache for a specific Action
	 * 
	 * @param action
	 */

	<A extends Action<R>, R extends Result> void clear(A action);

	<A extends Action<R>, R extends Result> R get(A action);

	<A extends Action<R>, R extends Result> void put(A action, R result);

}
